package com.wangzhenyu.learn.test.retrofit

@Suppress("UNUSED")
class NoteOfRetrofit {

    //retrofit注解
    //baseUrl 为 http://mock-api.com/2vKVbXK8.mock/
    //@Get
    //  @Query
    //  实例：@GET("api/getUserInfo")
    //       Call<UserInfo> getUserInfo(@Query("id") String userId);
    //  访问地址：http://mock-api.com/2vKVbXK8.mock/api/getUserInfo?id=1234
    //  @QueryMap
    //  实例：@GET("api/getArticalInfo")
    //      Call<ArticalInfo> getArticalInfo(@QueryMap Map<String, String> params);
    //  访问地址：http://mock-api.com/2vKVbXK8.mock/api/getArticalInfo?id=405&page=1（其实是多个@Query的拼接）
    //  @Path
    //  实例：@GET("api/getDynamicInfo/{param}/data")
    //      Call<ResponseBody> getDynamicInfo(@Path("param")int param);
    //  访问地址：http://mock-api.com/2vKVbXK8.mock/api/getDynamicInfo/2/data
    //  @Url
    //  实例：@GET
    //       Call<ResponseBody> getDynamicUrl(@Url String url);(当要访问的地址不只是动态的变几个参数，而是整个地址都要变化，甚至是基类地址也要变化时，这种动态地址就要用到@Url注解)
    //  @Headers("")
    //  实例：@Headers("version:1.1")
    //       @GET("api/staticHeaderInfo")
    //      Call<GetBean> getStaticHeadersInfo();
    //  访问地址：http://mock-api.com/2vKVbXK8.mock/api/staticHeaderInfo(静态添加头部信息：包含添加单个头部、添加多个头部 通过@Headers("")注解，内部以key:value的方式填写内容)(可以在header中看到相关信息)
    //   @Header(动态添加单个头部信息)
    //  实例：@GET("api/dynamicHeadersInfo")
    //      Call<ResponseBody> getDynamicHeaderInfo(@Header("version") String version);
    //  访问地址：http://mock-api.com/2vKVbXK8.mock/api/dynamicHeadersInfo
    //  @HeaderMap(动态添加多个头部信息)
    //  实例：@GET("api/dynamicHeadersInfo")
    //      Call<ResponseBody> getDynamicHeadersInfo(@HeaderMap Map<String, String> headers);
    //  访问地址：http://mock-api.com/2vKVbXK8.mock/api/dynamicHeadersInfo
    //@Post
    //@Field 对应 @Query
    //@FieldMap 对应 @QueryMap
    //@Body 对应 @Url
    //(在Post请求中，尽量不要使用@Query和@QueryMap，因为它传入的参数是直接拼接在url上的，不安全，而@Field和@FieldMap是写入到Body中的)
    //  @FormUrlEncoded(@FormUrlEncoded用于修饰@Field注解和@FieldMap注解，将会自动将请求参数的类型调整为 application/x-www-form-urlencoded)
    //  @Field
    //  实例：@FormUrlEncoded
    //      @POST("api/fieldParam")
    //      Call<ResponseBody> postFieldFun(@Field("key") String key)
    //  访问地址：http://mock-api.com/2vKVbXK8.mock/api/fieldParam（这个key的值会在body中）
    //  @FieldMap(FieldMap时候于多个相同类型参数的传递)
    //  @Body(直接传入一个对象过去，对象内可包含多种类型数据。)
    //  实例：@POST("api/bodyParam")
    //      Call<ResponseBody> postBodyFun(@Body PostBodyBean postBodyBean);
    //  访问地址：http://mock-api.com/2vKVbXK8.mock/api/bodyParam(使用@Body注解一定在创建Retrofit的时候加上.addConverterFactory(GsonConverterFactory.create()),目的是将对象转化为json字符串进行传递)
    //  @Part/@PartMap(文件相关)
}